home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1993 April: Penguin on DISC / ADC Developer CD (1993-04) (''Penguin On DISC'')_iso / Dev.CD Apr 93.iso / Utilities / MPW Interfaces 7.1 Beta / PInterfaces / Menus.p < prev    next >
Encoding:
Text File  |  1992-08-28  |  5.4 KB  |  192 lines  |  [TEXT/MPS ]

  1.  
  2. {
  3. Created: Saturday, July 27, 1991 at 9:45 PM
  4.  Menus.p
  5.  Pascal Interface to the Macintosh Libraries
  6.  
  7.   Copyright Apple Computer, Inc. 1985-1991
  8.   All rights reserved
  9.  
  10. *** Warning: This is an alpha version of the Interfaces for Cube-E. 
  11. ***          Things may change.  Caveat Programmer.
  12.  
  13.  
  14. }
  15.  
  16.  
  17. {$IFC UNDEFINED UsingIncludes}
  18. {$SETC UsingIncludes := 0}
  19. {$ENDC}
  20.  
  21. {$IFC NOT UsingIncludes}
  22.  UNIT Menus;
  23.  INTERFACE
  24. {$ENDC}
  25.  
  26. {$IFC UNDEFINED UsingMenus}
  27. {$SETC UsingMenus := 1}
  28.  
  29. {$I+}
  30. {$SETC MenusIncludes := UsingIncludes}
  31. {$SETC UsingIncludes := 1}
  32. {$IFC UNDEFINED UsingQuickdraw}
  33. {$I $$Shell(PInterfaces)Quickdraw.p}
  34. {$ENDC}
  35. {$SETC UsingIncludes := MenusIncludes}
  36.  
  37. CONST
  38. noMark = 0;                            {mark symbol for MarkItem}
  39.  
  40. { menu defProc messages }
  41. mDrawMsg = 0;
  42. mChooseMsg = 1;
  43. mSizeMsg = 2;
  44. mDrawItemMsg = 4;
  45. mCalcItemMsg = 5;
  46. textMenuProc = 0;
  47. hMenuCmd = 27;                        {itemCmd == 0x001B ==> hierarchical menu}
  48. hierMenu = -1;                        {a hierarchical menu - for InsertMenu call}
  49. mPopUpMsg = 3;                        {menu defProc messages - place yourself}
  50. mctAllItems = -98;                    {search for all Items for the given ID}
  51. mctLastIDIndic = -99;                {last color table entry has this in ID field}
  52.  
  53. TYPE
  54. MenuPtr = ^MenuInfo;
  55. MenuHandle = ^MenuPtr;
  56. MenuInfo = RECORD
  57.  menuID: INTEGER;
  58.  menuWidth: INTEGER;
  59.  menuHeight: INTEGER;
  60.  menuProc: Handle;
  61.  enableFlags: LONGINT;
  62.  menuData: Str255;
  63.  END;
  64.  
  65. MCEntryPtr = ^MCEntry;
  66. MCEntry = RECORD
  67.  mctID: INTEGER;                    {menu ID.  ID = 0 is the menu bar}
  68.  mctItem: INTEGER;                    {menu Item. Item = 0 is a title}
  69.  mctRGB1: RGBColor;                    {usage depends on ID and Item}
  70.  mctRGB2: RGBColor;                    {usage depends on ID and Item}
  71.  mctRGB3: RGBColor;                    {usage depends on ID and Item}
  72.  mctRGB4: RGBColor;                    {usage depends on ID and Item}
  73.  mctReserved: INTEGER;                {reserved for internal use}
  74.  END;
  75.  
  76.  
  77. MCTablePtr = ^MCTable;
  78. MCTableHandle = ^MCTablePtr;
  79.  
  80. MCTable = ARRAY [0..0] OF MCEntry;    { the entries themselves }
  81.  
  82. MenuCRsrcPtr = ^MenuCRsrc;
  83. MenuCRsrcHandle = ^MenuCRsrcPtr;
  84. MenuCRsrc = RECORD
  85.  numEntries: INTEGER;                {number of entries}
  86.  mcEntryRecs: MCTable;                {ARRAY [1..numEntries] of MCEntry}
  87.  END;
  88.  
  89.  
  90. PROCEDURE InitMenus;
  91.  INLINE $A930;
  92. FUNCTION NewMenu(menuID: INTEGER;menuTitle: Str255): MenuHandle;
  93.  INLINE $A931;
  94. FUNCTION GetMenu(resourceID: INTEGER): MenuHandle;
  95.  INLINE $A9BF;
  96. PROCEDURE DisposeMenu(theMenu: MenuHandle);
  97.  INLINE $A932;
  98. PROCEDURE AppendMenu(menu: MenuHandle;data: Str255);
  99.  INLINE $A933;
  100. PROCEDURE AddResMenu(theMenu: MenuHandle;theType: ResType);
  101.  INLINE $A94D;
  102. PROCEDURE InsertResMenu(theMenu: MenuHandle;theType: ResType;afterItem: INTEGER);
  103.  INLINE $A951;
  104. PROCEDURE InsertMenu(theMenu: MenuHandle;beforeID: INTEGER);
  105.  INLINE $A935;
  106. PROCEDURE DrawMenuBar;
  107.  INLINE $A937;
  108. PROCEDURE InvalMenuBar;
  109.  INLINE $A81D;
  110. PROCEDURE DeleteMenu(menuID: INTEGER);
  111.  INLINE $A936;
  112. PROCEDURE ClearMenuBar;
  113.  INLINE $A934;
  114. FUNCTION GetNewMBar(menuBarID: INTEGER): Handle;
  115.  INLINE $A9C0;
  116. FUNCTION GetMenuBar: Handle;
  117.  INLINE $A93B;
  118. FUNCTION GetMBarHeight: INTEGER;
  119.  INLINE $3EB8,$0BAA;
  120. PROCEDURE SetMenuBar(menuList: Handle);
  121.  INLINE $A93C;
  122. PROCEDURE InsMenuItem(theMenu: MenuHandle;itemString: Str255;afterItem: INTEGER);
  123.  INLINE $A826;
  124. PROCEDURE DelMenuItem(theMenu: MenuHandle;item: INTEGER);
  125.  INLINE $A952;
  126. FUNCTION MenuKey(ch: CHAR): LONGINT;
  127.  INLINE $A93E;
  128. PROCEDURE HiliteMenu(menuID: INTEGER);
  129.  INLINE $A938;
  130. PROCEDURE SetItem(theMenu: MenuHandle;item: INTEGER;itemString: Str255);
  131.  INLINE $A947;
  132. PROCEDURE GetItem(theMenu: MenuHandle;item: INTEGER;VAR itemString: Str255);
  133.  INLINE $A946;
  134. PROCEDURE DisableItem(theMenu: MenuHandle;item: INTEGER);
  135.  INLINE $A93A;
  136. PROCEDURE EnableItem(theMenu: MenuHandle;item: INTEGER);
  137.  INLINE $A939;
  138. PROCEDURE CheckItem(theMenu: MenuHandle;item: INTEGER;checked: BOOLEAN);
  139.  INLINE $A945;
  140. PROCEDURE SetItemMark(theMenu: MenuHandle;item: INTEGER;markChar: CHAR);
  141.  INLINE $A944;
  142. PROCEDURE GetItemMark(theMenu: MenuHandle;item: INTEGER;VAR markChar: CHAR);
  143.  INLINE $A943;
  144. PROCEDURE SetItemIcon(theMenu: MenuHandle;item: INTEGER;iconIndex: Byte);
  145.  INLINE $A940;
  146. PROCEDURE GetItemIcon(theMenu: MenuHandle;item: INTEGER;VAR iconIndex: Byte);
  147.  INLINE $A93F;
  148. PROCEDURE SetItemStyle(theMenu: MenuHandle;item: INTEGER;chStyle: Style);
  149.  INLINE $A942;
  150. PROCEDURE GetItemStyle(theMenu: MenuHandle;item: INTEGER;VAR chStyle: Style);
  151. PROCEDURE CalcMenuSize(theMenu: MenuHandle);
  152.  INLINE $A948;
  153. FUNCTION CountMItems(theMenu: MenuHandle): INTEGER;
  154.  INLINE $A950;
  155. FUNCTION GetMHandle(menuID: INTEGER): MenuHandle;
  156.  INLINE $A949;
  157. PROCEDURE FlashMenuBar(menuID: INTEGER);
  158.  INLINE $A94C;
  159. PROCEDURE SetMenuFlash(count: INTEGER);
  160.  INLINE $A94A;
  161. FUNCTION MenuSelect(startPt: Point): LONGINT;
  162.  INLINE $A93D;
  163. PROCEDURE InitProcMenu(resID: INTEGER);
  164.  INLINE $A808;
  165. PROCEDURE GetItemCmd(theMenu: MenuHandle;item: INTEGER;VAR cmdChar: CHAR);
  166.  INLINE $A84E;
  167. PROCEDURE SetItemCmd(theMenu: MenuHandle;item: INTEGER;cmdChar: CHAR);
  168.  INLINE $A84F;
  169. FUNCTION PopUpMenuSelect(menu: MenuHandle;top: INTEGER;left: INTEGER;popUpItem: INTEGER): LONGINT;
  170.  INLINE $A80B;
  171. FUNCTION MenuChoice: LONGINT;
  172.  INLINE $AA66;
  173. PROCEDURE DelMCEntries(menuID: INTEGER;menuItem: INTEGER);
  174.  INLINE $AA60;
  175. FUNCTION GetMCInfo: MCTableHandle;
  176.  INLINE $AA61;
  177. PROCEDURE SetMCInfo(menuCTbl: MCTableHandle);
  178.  INLINE $AA62;
  179. PROCEDURE DispMCInfo(menuCTbl: MCTableHandle);
  180.  INLINE $AA63;
  181. FUNCTION GetMCEntry(menuID: INTEGER;menuItem: INTEGER): MCEntryPtr;
  182.  INLINE $AA64;
  183. PROCEDURE SetMCEntries(numEntries: INTEGER;menuCEntries: MCTablePtr);
  184.  INLINE $AA65;
  185.  
  186. {$ENDC} { UsingMenus }
  187.  
  188. {$IFC NOT UsingIncludes}
  189.  END.
  190. {$ENDC}
  191.  
  192.